package com.xiaohao.communication.neo4j_service;


import com.xiaohao.communication.neo4j_bean.Linked;
import com.xiaohao.communication.neo4j_bean.Topic;
import com.xiaohao.communication.neo4j_bean.User;
import com.xiaohao.communication.neo4j_dao.LinkedDao;
import com.xiaohao.communication.neo4j_dao.TopicNodeDao;
import com.xiaohao.communication.neo4j_dao.UserNodeDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    UserNodeDao userNodeDao;

    @Autowired
    TopicNodeDao topicNodeDao;

    @Autowired
    LinkedDao linkedDao;

    /*
     * 插入链接      success
     * */
    public void insertLink(String user_id, String topic_id) {

        //先判断 数据库中，有没有这个用户节点，没有就直接插入，一般都是第一次，否则就有这个节点，按这个节点进行链接，不在插入这个用户
        User userById = userNodeDao.findObjectByUser_id(user_id);       //  从数据库中 查询，看是否含有
        Topic topicById = topicNodeDao.findTopicByTopic_id(topic_id);   //  从数据库中 查询，看是否含有
        // 用户等于空， 话题为空   插用户，插话题  连用户和话题
        if ((userById == null || "".equals(userById)) && (topicById == null || ("".equals(topicById)))) {
            User user = new User(user_id);
            Topic topic = new Topic(topic_id);
            //存节点
            userNodeDao.save(user);
            topicNodeDao.save(topic);
            //存联系
            Linked linked = new Linked(user, topic);
            linkedDao.save(linked);
            //用户等于空，话题不为空           插用户，连用户和话题
        } else if ((userById == null || "".equals(userById)) && topicById != null) {
            User user = new User(user_id);
            userNodeDao.save(user);

            Linked linked = new Linked(user, topicById);
            linkedDao.save(linked);
            //用户不为空 话题为空，           插话题， 连用户和话题
        } else if (userById != null && (topicById == null || "".equals(topicById))) {
            Topic topic = new Topic(topic_id);
            topicNodeDao.save(topic);

            Linked linked = new Linked(userById, topic);
            linkedDao.save(linked);
            //用户不为空 话题不为空，          就不用添加了，因为   已经有了
        } else if (userById != null && topicById != null) {
            // 这里应该 不会 走的，。。
            Linked linked = new Linked(userById, topicById);
            linkedDao.save(linked);
        }


    }

    /*
     *
     * 推荐
     * */
//    public int getRecommendTopic(int user_id){
//        String u_id = String.valueOf(user_id);
//        String topic_id = topicNodeDao.findTopic_idByUser_id(u_id);
//        Integer integer = Integer.valueOf(topic_id);
//        return integer;
//    }


}
